#pragma once
#include<iostream>
#include<deque>
using namespace std;

namespace my_std
{
	template<class T, class Container>
	class queue
	{
	public:
		bool empty()const
		{
			return _cons.empty();
		}

		void push(const T&x)
		{
			_cons.push_back(x);
		}

		const T& front()const
		{
			return _cons.front();
		}

		const T& back()const
		{
			return _cons.back();
		}

		const size_t& size()const
		{
			return _cons.size();
		}

		void pop()
		{
			_cons.pop_front();
		}


	private:
		Container _cons;
	};
}